Computer applications have been developed to perform attribute-based matching, where a first user is desirably matched with a second user or the first user is desirably provided with content based at least in part upon the matching of an attribute assigned to the first user. In other words, in attribute-based matching, there exists one or more attributes assigned to an entity (a user), and the goal is to find pairs or groups of entities that share the attributes. There are several variants of the matching problem depending on the entities being matched are (e.g., users versus businesses), the nature of the attributes (e.g., opaque strings versus semantically meaningful attributes, such as location), the nature of the association between the entities and their attributes (e.g., static versus dynamic, with the location of a mobile user being an example of the latter), and what constitutes a match (e.g., an exact match of opaque attributes versus approximate match of semantically meaningful attributes, with location proximity being an example of the latter).
Attribute-based matching is a primitive that is utilized in a wide range of applications. For instance, in a topic-based publish-subscribe system (such as a content broadcasting system or mailing list), a user can subscribe to topics of interest, and the user is notified when items matching the topics of interest are published. Another exemplary application type that utilizes attribute-based matching is a location-based application. In location-based applications, such as mobile advertising delivery, businesses publish information tagged with a target location. The information is then delivered to mobile users if and when their current location matches the target location. In online social networking applications, users are matched based upon their social relationship and interests that they have registered in profiles. Further, a location-based social networking application combines user-to-user matching with dynamically varying location attributes of users. For example, a first user can be notified when a registered contact of the first user is within a particular geographic range of the current location of the first user. Accordingly, the first and second user are matched based at least in part upon location attributes assigned thereto. In another example of an attribute-based matching service, places of interest can be suggested to users, where interests of the users and their current locations are matched with a place. A list of places can be provided by a third party mapping application, for instance.
While these matching-based applications are becoming increasingly popular, there are concerns regarding user privacy. Specifically, attributes that are assigned to a user may be sensitive to the user. For instance, being able to link a user with a location or interest in a particular health condition may reveal more about a user than the user would like. This privacy concern arises not only from the possibility of a third party learning the sensitive information, but also arises from the service provider (the matching service itself) learning or leaking information either deliberately or through carelessness.